Streszczenie

Raport zawiera analizę danych krystograficznych pochodzących z bazy Protein Data Bank (PDB). Ze względu na brak danych w niektórych rekordach, należało je odpowiednio uzupełnić bądź niekiedy pominąć. Analizowany zbiór danych składa się z wielu atrybutów, więc na potrzeby poszczególnych analiz wymagane było staranne dobranie odpowiedniego zakresu danych. W raporcie zdefiniowano znaczenie poszczególnych zmiennych oraz sprawdzono korelację między atrybutami. W ostatniej części projektu należało zbudować model regresji oraz stworzyć klasyfikator przewidujący wartość atrybutu res_name.

Wstęp

Przedmiotem niniejszego raportu są dane pochodzące z bazy Protein Data Bank. W bazie PDB przechowywane są dane strukturalne białek oraz innych związków chemicznych. Dokument ma na celu analizę tych danych oraz ocenę możliwości wykorzystania uczenia maszynowego do automatycznego podpowiadania biologom jakie cząsteczki mogą się kryć w niewymodelowanych fragmentach map intensywności.

Właściwości zbioru

Zbiór składa się z 581429 obserwacji oraz 412 atrybutów. Poniżej zamieszczone zostały statystyki dla wybranych zmiennych.

Pierwsze atrybuty zbioru zawierają informacje o identyfikatorze pliku PDB, nazwie ligandu oraz umiejscowieniu cząsteczki w białku. Ta grupa zmiennych służy do identyfikacji opisanych w wierszach cząsteczek chemicznych. Zmienne te są typu znakowego.

Length Class Mode
res_coverage 581429 character character
title 581429 character character
pdb_code 581429 character character
res_name 581429 character character
res_id 581429 character character
chain_id 581429 character character

Poniższa tabela przedstawia podsumowanie zmiennych informujących o liczbie atomów i elektronów ligandu zamodelowanych w pliku PDB (local) oraz wyliczonych na podstawie danych słownikowych (“tablicy pierwiastków”) (dict).

Min. 1st Qu. Median Mean 3rd Qu. Max.
local_res_atom_count 1.00 4 6 14.0182137 20 178
local_res_atom_non_h_count 1.00 4 6 13.6758693 20 111
local_res_atom_non_h_occupancy_sum -7.38 4 6 13.2247024 18 111
local_res_atom_non_h_electron_sum 3.00 30 50 101.3082509 136 1848
local_res_atom_non_h_electron_occupancy_sum -45.91 28 48 97.2337432 128 858
local_res_atom_C_count 0.00 0 3 7.8528849 10 84
local_res_atom_N_count 0.00 0 0 1.2066374 1 28
local_res_atom_O_count 0.00 1 3 3.8131965 5 61
local_res_atom_S_count 0.00 0 0 0.2192082 0 13
Min. 1st Qu. Median Mean 3rd Qu. Max. NA’s
dict_atom_non_h_count 1 4 6 14.0169202 20 128 11756
dict_atom_non_h_electron_sum 3 30 48 103.8283296 136 1223 11756
dict_atom_C_count 0 0 3 7.9965524 10 93 11756
dict_atom_N_count 0 0 0 1.1854169 1 28 11756
dict_atom_O_count 0 1 3 4.0235784 6 55 11756
dict_atom_S_count 0 0 0 0.2188203 0 13 11756

Kolejna grupa atrybutów opisuje wartości obliczone tylko na podstawie ligandu. Liczba pojawiająca się po “part_” koduje próg odcięcia intensywności. Dla każdego progu odcięcia występują te same atrybuty, a w tabeli poniżej przedstawione zostały przykładowe atrybuty dla odcięcia part_01.

Min. 1st Qu. Median Mean 3rd Qu. Max. NA’s
protein.part_01_shape_CI -142.6431085 -6.149662e-01 1.457000e-04 3.782560e-02 6.496026e-01 9.132459e+01 5713
protein.part_01_density_O3 2.5714489 6.892338e+03 3.226855e+04 6.740927e+05 1.930850e+05 4.912020e+08 5713
protein.part_01_density_E2_E1 0.0000880 2.027450e-01 3.924669e-01 4.277482e-01 6.363920e-01 1.000000e+00 5713
protein.part_01_density_sqrt_E1 0.9251489 3.192951e+00 4.918191e+00 7.198507e+00 9.237882e+00 2.021732e+02 5713
protein.part_01_density_I6 16.0944423 6.671601e+08 2.825257e+10 3.048405e+16 3.851878e+12 3.827444e+21 5713
protein.part_01_density_M000 0.4672308 2.916152e+02 7.792077e+02 1.902928e+03 2.106748e+03 4.946192e+04 5713
protein.part_01_density_FL -20.3437815 2.178290e+07 2.668230e+09 2.745975e+15 5.959460e+11 2.970710e+20 5713
protein.part_01_density_FL_norm -0.0406061 1.041900e-03 1.217200e-02 7.957570e-01 1.440805e-01 1.474174e+04 5713

W zbiorze wysępują zmienne, które mają w nazwie norm lub sqrt. Są to wartości obliczone z istniejących już w zbiorze wartości, prezentują więc te same informacje. Aby nie dublować tych samych wartości, kolumny te zostały wykluczone z obliczania regresji i klasyfikatora.

Przygotowanie danych

Jak widać na powyższym podsumowaniu, w danych znajduje się wiele pustych wartości. Wartości NA występowały między innymi na atrybutach potencjalne ważnych dla późniejszej analizy, wobec czego dane te należało uzupełnić. Zostało to dokonane w następujący sposób: przed analizą wybranego zbioru danych, wartości NA z tego zbioru zostały uzupełniane średnią danej wartości dla danej klasy res_name.

Sprawdzenie korelacji między zmiennymi

Ze wględu na zbyt duzą ilość kolumn w zbiorze zrezygnowano ze sprawdzenia korelacji wszystkich par zmiennych. Przedstawienie takiego zestawienia byłoby nieczytelne oraz kosztowne obliczeniowo.

W raporcie została więc przedstawiona korelacja jedynie kolumn prezentujących atrybuty dla odcięcia poziomu 1. Są to kolumny, których wartości obliczone zostały tylko na podstawie ligandu, warto jest więc zapoznać się z ich wzajemnymi zależnościami.

Z zakresu danych zostały odjęte zmienne zawierające w nazwie norm i sqrt. Dane te są silnie skorelowane ze zmiennymi na bazie których powstały, więc dodawanie ich do wykresu zmniejszyłoby jego czytelność.

Ilość przykładów dla każdej z klas

Na każdą z klas przypada następująca liczba przykładów:

Rozkład liczby atomów i elektronów

Na podstawie powyższych histogramów nie można kategorycznie stwierdzić, że ilość elektronów jest wprost proporcjonalna do ilości atomów, gdyż jak wiadomo, ilość elektronów w atomie jest zależna również od masy atomowej danego pierwiastka. Niższa wartość w pierwszym pojemniku histogramu rozkładu liczby elektronów wynika z faktu, że pierwiastki wchodzące w skład ligandu mogą mieć mniejszą masę atomową (ilość elektronów = liczba protonów w atomie danego pierwiastka).

Poniżej interaktywny wykresy średniej liczby atomów i elektronów dla pięćdziesięciu najlpopularniejszych klas res_name:

Klasy charakteryzujące się największą niezgodnością liczby atomów

Największa maksymalna niezgodność liczby atomów została osiągnięta dla następujących klas:

res_name Maksimum
COA 41
CLA 40
NAP 39
NAD 33
FAD 26
NDP 26
ATP 22
ADP 19
GDP 18
NAG 14

Z kolei następujące klasy osiągnęły największą średnią niezgodność liczby atomów:

res_name Srednia
CLA 5.2451923
1PE 2.6633895
UNK 2.2000000
COA 1.8346312
MLY 1.3265888
NAP 1.2833096
PG4 1.0440751
NDP 0.9881292
NAG 0.9801214
MAN 0.8944034

Klasy charakteryzujące się największą niezgodnością liczby elektronów

Największa maksymalna niezgodność liczby elektronów została osiągnięta dla następujących klas:

res_name Maksimum
COA 309
NAP 298
CLA 250
NAD 246
FAD 197
ATP 179
NDP 170
ADP 134
GDP 121
NAG 97

Z kolei następujące klasy osiągnęły największą średnią niezgodność liczby elektronów:

res_name Srednia
CLA 32
1PE 18
UNK 15
COA 14
MLY 10
NAP 9
NAG 8
MAN 7
NDP 7
PG4 7

Rozkład wartości kolumn zaczynających się od part_01

W tej sekcji zobrazowano rozkłady wartości kolumn należących do pierwszego odcięcia.

Jak łatwo zauważyć, dla wielu z kolumn wartości w zbiorze danych skupione są w okolicy zera za wyjątkiem pewnych, nieraz daleko oddalonych ekstremów. Możliwe, że obecność takich ekstremów jest charakterystyczna dla określonych klas ligandów, co mogło by wspomóc dalszą analizę i klasyfikację.

Przewidywanie liczby elektronów i atomów na podstawie innych kolumn

Jako model został użyty schemat 10-fold cross-validation + holdout. Polega on na podzieleniu zbioru na dwa zbiory: uczący (80% próbek) oraz testowy (20% próbek), a następnie podzielenie zbioru uczącego wg. powtórzonej walidacji krzyżowej. Zbiór ten dzielony jest na 10 podzbiorów. Następnie następuje 10 tur analizy, podczas której każdy z podzbiorów w swojej turze staje się zbiorem walidującym, a pozostałe - uczącym. Dodatkowo dokonano optymalizacji parametrów - zastosowano dodatkowe skalowanie i centrowanie danych. Jako algorytm wybrano regresję liniową.

Do regresji zostały użyte następujące grupy zmiennych: zmienne informujące o liczbie atomów i elektronów ligandu zamodelowanych w pliku PDB (local) oraz wyliczone na podstawie danych słownikowych (“tablicy pierwiastków”) (dict), wartości obliczone na podstawie ligandu dla odcięcia part_01 bez zmiennych sqrt i norm.

Wyniki dla przewidywania liczby elektronów
LM_RMSE 0.3299087
LM_R^2 0.9999867
Overall
dict_atom_non_h_electron_sum 100.000000
dict_atom_non_h_count 21.072482
local_res_atom_non_h_count 20.553652
dict_atom_S_count 6.308712
local_res_atom_S_count 6.269176
dict_atom_C_count 4.071570
local_res_atom_C_count 3.805927
dict_atom_O_count 2.716241
local_res_atom_O_count 2.660747
local_res_atom_non_h_electron_occupancy_sum 0.890095
Wyniki dla przewidywania liczby atomów
LM_RMSE 0.0400497
LM_R^2 0.9999911
Overall
dict_atom_non_h_count 100.000000
local_res_atom_non_h_electron_sum 35.492957
dict_atom_non_h_electron_sum 34.067628
local_res_atom_C_count 18.143674
dict_atom_C_count 17.872308
dict_atom_S_count 7.373756
local_res_atom_S_count 7.286738
local_res_atom_N_count 4.887525
dict_atom_N_count 4.474226
local_res_atom_O_count 3.073324
Zarówno wyniki dla przewidywania liczby elektronów jak i przewidywania liczby atomów wyglądają zadowalająco. Wynika to z obecności słownikowych wartości liczby elektronów i atomów w zbiorze danych. Powyższa tabela pokazuje, iż reszta zmiennych w regresji nie były zbyt istotne.

Klasyfikator przewidujący wartość atrybutu res_name

Do klasyfikacji zostały użyte wartości obliczone na podstawie ligandu dla odcięcia part_01 bez zmiennych sqrt i norm. Jako model został użyty schemat taki sam jak w przypadku regresji. Użyty algorytm klasyfikacji to support vector machine (SAV), który uważany jest za jeden z najszybciej działających klasyfikatorów.

x
Accuracy 0.3720693

Precyzja klasyfikacji wynosi około 38 procent. Nie jest to zbyt zadowalający wynik. Użycie innej odmiany SVM (np. radial kernel) oraz regulacja parametrów algortymu z pewnością poprawiłoby trafność klasyfikacji.